<?php
namespace Deployer;

require 'recipe/common.php';

// Project name
set('application', 'fiber_demo');

// Project repository
set('repository', 'https://gitee.com/subowen_admin/fiber_demo.git');

// [Optional] Allocate tty for git clone. Default value is false.
set('git_tty', true); 

// Shared files/dirs between deploys 
set('shared_files', []);
set('shared_dirs', []);

// Writable dirs by web server 
set('writable_dirs', []);
set('allow_anonymous_stats', false);
set('default_stage', 'local');

// Hosts

localhost()
    ->stage('local')
    ->roles('test', 'build');

host('test-ark001', 'test-ark002', 'test-ark003')
    ->configFile('~/.ssh/config')
    ->stage('prod')
    ->set('deploy_path', '/hwdata/www/{{application}}');

// Tasks

task('git:push', function() {
    writeln('start git push task');
    run('git add .');
    run('git commit -m "auto commit by deploy"');
    run('git push origin master');
});

desc('go version');
task('go:version', function() {
    run('whoami && pwd');
    run('/usr/local/go/bin/go version');
});


desc('go build current dir project');
task('go:build', function() {
    run('cd {{release_path}} && /usr/local/go/bin/go build .');
});

desc('go build current dir and restart supervisrod');
task('go:restart', function() {
    run('cd {{release_path}} && /usr/local/go/bin/go build .');
    run('cd {{release_path}} && chmod +x ./fiberDemo');
    run('sudo supervisorctl restart fiber_demo', ['tty' => true]);
});

desc('Deploy your project');
task('deploy', [
    'deploy:info',
    'deploy:prepare',
    'deploy:lock',
    'deploy:release',
    'deploy:update_code',
    'deploy:shared',
    'deploy:writable',
    // 'deploy:vendors',
    // 'deploy:clear_paths',
    // 'deploy:symlink',
    'deploy:unlock',
    // 'cleanup',
    'success'
]);

// [Optional] If deploy fails automatically unlock.
after('deploy:failed', 'deploy:unlock');
after('deploy:writable', 'go:restart');
